{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**常用的分箱方法：**\n",
    "\n",
    "有监督：Best-KS、ChiMerge；\n",
    "\n",
    "无监督：等频、等距、聚类\n",
    "\n",
    "**关于变量分箱主要分为两大类：有监督型和无监督型**\n",
    "\n",
    "对应的分箱方法：\n",
    "\n",
    "A. 无监督：(1) 等宽 (2) 等频 (3) 聚类(如k均值聚类分箱)\n",
    "\n",
    "B. 有监督：(1) 卡方分箱法(ChiMerge) (2) ID3、C4.5、CART等单变量决策树算法 (3)  信用评分建模的IV最大化分箱 等\n",
    "\n",
    "基于CART算法对连续变量进行最优分箱\n",
    "\n",
    "对变量进行分箱,Python中的函数pd.cut和pd.qcut"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuQAAAFWCAYAAAAhToiGAAAgAElEQVR4AeydB5gUxdaGixxEyVEFyUjOgoggIhhBAUUlGDCAAQwoAsIVAyBmUVAxoAIqcBEToiT1goAkyRIkZ8k51/+89d/Tt2d2ZndmdpZd2HOeZ7d7qqsrfN3T89Wpr05nsNZao6YIKAKKgCKgCCgCioAioAgoAqmCQMZUqVUrVQQUAUVAEVAEFAFFQBFQBBQBh4AScr0RFAFFQBFQBBQBRUARUAQUgVREIHO4ujc984zZ/vLL4Q7HlJ7l4otN1Q0bYjpXT1IEFAFFQBFQBBQBRUARUATORQTSlYd83rx5pm3btubQoUMhr+WNN95oLrvsMnPw4MGQxzUxdgSef/55M2nSpNgLiPDMbdu2mdmzZ4fNPXr0aNO0aVOzd+/esHn0gCKgCCgCioAioAgoAmcSgbAecn8jMhcubDLmzOlPimr/+Nq1UeVPqcwLFy40M2fONDly5EhQxenTpx1hLFSokMmePXuC48lNWLt2rSlatGiKlJ2ctq1cudLs27fP1KlTJznFJHnuSy+95IjwNddck2TeWDNs2rTJ1KtXz2zdutUw+KpevXpAUVOnTjXt27d3aVu2bDF58uQJOK4fFAFFQBFQBBQBRUARSA0EIiLkl3z0kcl9ww0xt29ehgwxnxvPE9evX+9IYcaMCScGduzYYY4fP24aN25sMmeOCJaIm/bLL7+YZs2amUsuucRACi+66KKIz03JjPT3tttuM4sWLTJDhgwxnTt3TpHqmHGgrgkTJpj58+ebmjVrxr2ew4cPm1tuucVs3rzZ5M6d22TJkiWgDgg4syOkjx071lSsWDHguH5QBBQBRUARUAQUAUUgtRBIyExTqyVnoF48qNmyZQtZ05o1a1w6pDmehjQCInjixAmzatUq869//SuexSda1l9//WV69Ohh/vnnn5D5IOHMGhQrVsy0bt06ZJ54JObKlctUq1bNFfXII4/Eo8iAMk6dOmVuuukmM3fuXHPzzTebZcuWmUqVKgXk6dSpk5MqTZw40Vx33XUBx/SDIqAIKAKKgCKgCCgCqYlAuiLkO3fuDIs1HlRM5CoQ6HjY008/bfC+Y7Vr1zYvvPBCxMXu3r3bIKWJxSDhePsHDRpkmjRpYo4cORJQzK5du8xzzz3n0t5++21TsGDBgOPJ/UC78YZLmHv045UrV3aSoffeey+5xQec/+qrr7qZB7Zff/21OXbsmKGOvn37unxffPGF+fnnn82XX35pGjZs6NLwpMt1CShMPygCioAioAgoAoqAInCGEUhXhDwxAob3GoPAlihRwhHzN954I1mXY9y4cWbYsGGuDLTTv/76q/NGhyp048aN5vvvvzf333+/8+5ecMEFJn/+/GbWrFmhsieaBgnu0KGD2b59u8uXIUMGgxfZb71793ba8SeffNK0atXKfygu+926dTO1atUyDz/8sCsPwv/jjz86Hf0TTzxhFi9eHJd6IP19+vRxUhRkMejGS5UqZbp06eL6xyzBfffdZ1gbgLF/4YUXOtlQ4cKFzZgxY+LSDi1EEVAEFAFFQBFQBBSBWBGIr1g61lakwHmTJ082eL0hphBSDMkK+u09e/aYvHnzOu8tpPmHH34wRN/A9u/f7/4yZcoUljy7jEn8O3r0qIHsYldddZUZP368yfnfhbEMDG644Qbn/aYt/IWL+iHnJFFdwGE8xT/99JNLe/DBBw0e8KxZs3p5wOb999937erfv7+XHq8d+vfhhx+64vzSEbDHc92yZUtDRBsWXhYoUCDmarmeSFVkNqNXr16uLK7366+/7qRCeMTRl5OHesWQ0dx5550BaXJMt4qAIqAIKAKKgCKgCJxRBGwY29ijh51rjPvb+/33YXJFlizlLLz44shOiEOuu+66y+bOndsePnzYlbZr1y6bIUMGa4yxRYsWdWkLFy50n0mTvxw5cthu3brZlStXJqsVzz33nCvzsssus23btrVPPvmkPXnypCtz27ZtXn1Sr39Lu2+99VY7c+bMqNswe/ZsmzFjRlc+/Qi2/fv324svvtiWLVvW7tu3L/hwXD737NnT63uoAp999ll3vFatWnbPnj2hsiSZxvUpUaKEK6dLly522LBhbj9Xrlx28eLF9vTp07ZGjRqWz2+88YZdtWqVO54vXz47efJke+zYsSTr0AyKgCKgCCgCioAioAicCQTwEoe0s52QX3755bZ79+72yJEjdujQobZkyZKOkEF8n3nmGdfnU6dO2c6dO1sI3UUXXeSO33777SHxiCZx+/btNnPmzLZu3bp27dq1tkCBAq7sp556yivmkksucWnnnXee1y7aVq1atZjJ4qFDh2zp0qVdee3atXOk1Kvwvztdu3Z1x0uV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n1ihI0aMMCtXrnR9TixfrMdmzZplIMnYa6+9ZlJyJqB79+5uYFOnTh3z8MMPm99//93UqFHDvPHGG2bChAmmcOHChgHInXfeaZo1a+aIc6z9Cnce1xE7duyY6dixozl9+nS4rHFNp189evQwr7zyilfu+vXrTcOGDU3btm29tHjtdO3a1XTo0MFs377dK5LvDTMhixcv9tJ0RxFQBBQBRUARUAQiQyBdEfKxY8c60jJgwIAE6CxdutQRmBUrVjjJwciRIxPkSYmEGTNmuGLr16+fEsUnWiZ650svvdTkzJkz0XyxHmzSpIkjxZy/bds2R4hjLSux86y1jvDv37/fZMqUyfz2229m5syZ5sYbbzQ7duwwZcuWNddee61XBESSvPE2iOro0aMdCWZgIIOReNYzdepU53336/KXL1/uqmjUqJFXFf3H7rrrLi8tHjvLli1zMwAM5r777juvyLx585p169aZzJkze2m6owgoAoqAIqAIKAKRIZCufj1Xr17tUGnVqlUAOqQ3b97cbNmyxUvv1KmT86KyzZgx5cYteG8xyPHw4cPNt99+60gNxC4eRp8gSzly5EhQHCS5QYMGCdLjlZA/f37DgKNPnz7m008/dZ5jf9m7d+92/WX7yCOPmKxZs/oPR7yfIUMGU7VqVbNo0SInR6EsZh7wUOfJk8fcfPPNBiKL8fn77783RYoUibj8SDNyn9x6662mZcuWBuI6adIkNxuzefNms3fvXjcTwnUmH9e6TJkykRbt5WNgAdGvVauWJ4uh39mzZzcMgMQg6VxzBiXxtP79+7viGHD4yT7XEGOAp6YIKAKKgCKgCCgCUSJg05E1bNjQGmPs7NmzvV5v3LjRXnjhhS6dY1deeaUdMWKELVasmEsrWbKk/fbbb738yd3Zs2ePnTJlip00aZJ95ZVXbKZMmby6qZ+/OnXqJLcad/7WrVtdP2655RZ7+vTpgDJpB3Xlzp3btm7d2l599dX2zTffDMgTrw/UvWzZMvvuu+/au+66y9avXz8Ac9rRs2fPZFX3ySefeDjmz5/f3nPPPe467tq1y06YMME7Nnz48GTVE+rk+fPnu77deuuttmzZsl5dcj1DbZs3bx6qqCTTChQo4Mqnfxh1U37evHnt008/7d3b119/vb388suTLC+aDKtWrfLu119//dU79dixYzZDhgw2Y8aMXtre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48aNA2Y/GPzgNKhcubKbEWCbElatWjVXbGquieB5GG/DIcHziJmWnTt3JiheBgRFihRJcCyeCfwWMCObIUMGkzdv3ngWrWUpAorA2YiATUd2/fXXs/rM/uc//wno9ZtvvunSOeb/a9OmjV2xYkVA3uR8OH36tL3zzjtdHVdffbWdP3++K+6BBx7w6u3cuXNyqvDObdCggSvzu+++89Jk54MPPnDH7r33XkmyP/30kx07dqz3OV47LVu2dHVNnjzZnjx50v7+++924MCBtlGjRrZPnz7xqsYeO3bMdunSxT7xxBMWnINt165dNk+ePK4tgwYNCj4cl8/0b/HixXbkyJH2lVdesV27drW33HKLveyyy2yZMmVsjhw5XP3cY1yDWCxz5syujCuuuMKdfujQIZshQwZbuHDhgOIeeughW6hQIYd5wIE4f1i0aJGlrgkTJriSV61aZWfOnGnfeOMNe9NNN1na+ddffyWr1ieffNLDTb6fYAm2Bw8etDVr1nTHwRg84m1vv/12QP30i2udEvbzzz/bjBkzevXVqFHDe05Q3+zZs+0FF1xgSd+9e3dKNCGgzAsvvNC2bds2II023nrrrSmCNRXx/ZTrfOLEiYC64/Hh+++/d+VXqVIlZHEXXXSRO869LPbss8/avXv3yse4bJcvX+7qKVu2rCuPZ9QXX3xhH374YVu+fHnLd0tNEVAE0g8CeITTjdWuXds9AJcuXer1+euvv3Zp/ABkz57dvvfee+6HhockaZCd2267zR4+fNg7J9adF154watr69atrpiVK1d6RK1Tp06xFp3gPCHkEMRge+6551w7HnvsMe9Qjx49HBF45513vLTk7pw6dcqWKFHC1QX2Qojlx5bttGnTkluNOx/yK+W+++67CcoUUle/fn1H3hNkiCFhz549lgHP008/7QYY5513ntcGaQsEmn4LkZb0WrVqxVCjtRAkyujevbs7/5tvvnGfuU8rVapkP/roI5fO9WfQl5K2ZcsWS/0Mghhg5c6dO0H/aesdd9yRrGbwXYGEUhbX79dff3XXkEGYXHdI7Lx585JVT6iTucb58uVL0C8GfyllL730knvuMDg/fvy4Vw2DHu4xrjPk7UzYVVddZUuXLh1QVfv27R0eKTUw6dWrl4d3QMVx+iCEnEFFsHFPZcqUydW/fv16d5gBPvde3bp17dq1a4NP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4V6xX7p27epGjx7tatSo4a677rqs0dWrV89ddNFFWcNZAEPAEDAEDAFDwBAwBKoCAiUj5HPmzPHlff/9991XX33ltt1225KX/5ZbbvFkvH79+q579+4VyDiJQcI//vhj16VLF3ffffeVNP25c+e6OnXqJMY5atQorxwsWLDAff/99yUj5MT18ssvews1pBs55ZRT3EknneTWW289t+KKK7qGDRsm5qmYmz/++KN3DQnjAPMTTzzRnXnmmd5CHT4r9vO4ceN8FFj8c5E11ljDNWrUKJegFsYQMAQMAUPAEDAEDIGlHoGSEfJ27dp5wtajRw93zjnnuEGDBjmsqaWSfv36uSuvvNK7TTz99NOuSZMmDveVefPmeWIKESfto48+2pNxrK2lkgceeMC7bOC2cffdd1eKlnxBxrFSn3rqqZWe53sjiiJ38sknuw8++MCtvvrqHsc2bdq4oUOH+vJiJd9xxx0To8V6TdnDlYPEgBlu3nzzzW7LLbf0pJc6XGedddzmm2/usJbjLlJKoaz//fefj7JWrVoZoyYsgjJiYggYAoaAIWAIGAKGQHVBoEYkllNAiT766CP36quven/uBg0a+I12nTp1cu+++653PcDXuRQyYcIE7yvdtGlTh+vG22+/7S3HuFUcfvjhDncRFAII+pAhQ7zrzCuvvOI3/6299tqeTGcje+nySVodO3ZMbVYl/latWqWCQ5rxrV555ZV92qRXDmEDJ+l8/fXXPvpjjjnGLb/88m7WrFkOv3kwYjPrjBkz3GqrreYt9blanJPyS1zEu9lmm7kpU6Z4BQGXHHzXWf3ASk1dozAUKyuttJL7999/fbvZe++900Z34IEHercgyo7fuYkhYAgYAoaAIWAIGALVAgEIeSEyb968aK211sJkGd1xxx2pKP79999oyy239Pdffvnl1P1CPyxYsCBq3769j69OnTpR/fr1/WfSbdOmTfTTTz9FBxxwgL+3+uqrR+3atYtq1KiRCtOsWbNo2rRpBSU/adKkaM011/Rx1apVK7r55pujRYsWpeKirBtuuGHEs9deey11vxQfZs6cGb399tvRBRdcEG2yySYVykTZs/2dffbZBWdj8uTJ0XbbbefTqFevXlSzZs0K6en7CiusEJ1yyikF46sMCuM//vhDt/x1/Pjx0VdffZW6t8MOO/h8nHnmmal79sEQMAQMAUPAEDAEDIGqjoArtACPP/64J0eQ4tmzZ1eI5vfff49WWmmlqG7dulH//v0rPMvnC4R3//339+msvfbaEYRbRLRLly7RnDlzooMOOsjf23rrraOOHTv6zxDk3XbbLbrnnnuiiRMn5pNkhbBHH320j2/FFVeM3n333QrP+NK1a1f//N577630LJ8b4Pfdd99FL730UnTJJZdEu+yyS7Tccsv5uFVe8Fx++eX9vW222Sb68ccfo+HDh6f+Bg0aFL355pvRdddd5xWV3XffPZ8s+LCffvppdOihh6bSIe3LLrss+vbbb1P5eeKJJ6Ivv/yyQt6efPLJvNMKX2jevLmP7++//w5vR9dcc42/f/HFF3tFCMWEPEHgW7duHaEsoJCZGAKGgCFgCBgChoAhUJURKIiQz507N9pggw08OXr99dcTy//88897yyoW7a+//joxTLabIsQ77bRT9M8//0TPPPOMT3P99dePxo0bF40cOTLab7/9ogceeCDCYt+vXz//vEOHDhUs2dnSSXoOOYb8QYI//PDDSkEgxDzbeOONI1lyIcS9e/f2f2+88Ub0+eefR1j4s8l9993n0yI9rPtYp6+66qrowQcfjF599dVo2LBhPh5ZrSGjEGUs9pDhgQMH+vJnSyfb8wYNGvh8XHjhhZGwHzx4sMeavIH7f//9F40dOzaV31Jgveqqq/r4Tj755Gj77bf38VOfspyTNgoJ1/ifWcuz1ao9NwQMAUPAEDAEDIGlHYGCCDkEGGK01VZbZSS+PXr08OEgU++//37eWFx99dX+PbmJ4Hqy8sor+zghcaNGjaoQJ8S1du3a/vldd91V4Vk+X8aMGRM1bNjQx9OzZ0//KkQUi/SUKVMiLPctW7b0z8EBYt6kSZMIF444Ydx1112zJj169Ohozz33jPr06RPhqiIhH4899pgnx61atfKuMcSPW86tt94aHXXUURXSO/LII/VqQVeUi8aNG/t3UahIC4Xr4Ycf9p9RDqiLk046yX8nLOS8EMHKftttt/lXZfknvXXWWcevuKjtxPGMf8c9ysQQMAQMAUPAEDAEDIGqjEDehFxkdZVVVolwTckmuFdAonAjuf7666P58+dneyXj859//tnHc+2113piHA88YMCAiGdDhw6NP8rpO4QTckyeIcFXXnml92GXhRYLNmSd6xFHHBG98sorKZcdrLq4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V3coNpSHzbvUK4QYefjhhz0ZJ72QjPOMOlY9n3rqqR63OOH2kWT4F9ZZGKxz586OP5QHEXKs6yaGgCFgCBgChoAhYAhUFwQKJuRPPfWUJ2m4pJx//vkpPKZNm+aefvpp//2ggw5K3S/kA24ZnOaBuwSEb/LkyW7q1KmeoOLugHsKwkkdnLiBGwPW2VDq168ffs35My4ZEGusycgVV1zhiXm2CCDNn332mQ8md51s76R7jlsPp8eMGDHCvf322/7EF8KiiJxxxhmp18ibTiRJ3czwAdej448/3isd8WA9e/Z0b731lr997bXXup9//tm1atXKn/KywQYbOOo9m+RLxokv0zu4P3HSjAR3GFykEFZiWDHBcs+JOEkuLnrProaAIWAIGAKGgCFgCCyNCBREyF9//fUUIYS04d8suf/++x0WWOSUU07R7byuixYtcvfdd5/DZWXBggXu1ltv9UfuQSI///zzCr7HRAwJ3nHHHb2rSzyhQizkxKEj/yCKkHqOFSQvSKNGjeLJpL5jWYYcIrxTjOD6gz897jq4j+iYQFxKWEHAvQQ/9c022yyvZHAPYQUgSSC7++23n8MVBuAoslwAACAASURBVNxZIZDgNhP3+dezYq/h0ZTg98cff3hFhPpGwcMdRsLRlvzFpVevXu60006L37bvhoAhYAgYAoaAIWAILNUI5E3I8RWHJOI3DlG66KKLHH7iELnBgwd7EkeJ2fCI73EhAtnEbxoLM77Om266aSqamTNnpj6vssoq/vORRx7pcJ8hT6Gw6bNQueSSS/wGQwge7hQoHrhMQBZx7UAeeughX8bdd9/df8d6f+mll/rPbdu2zUjcfaAs/3AXkcsIQVlx6Nu3r1dAVlttNR//9OnTvZLC84kTJ3qiDaEuRiD8uLKQhspGfJwbj8sM59GDSxzvYtJE2cHtCJzxSY8LShDtKbSAUxdsdOUcej6zkmBiCBgChoAhYAgYAoZAlUMgn2NiOO6P4+aaN28effjhh/5Vft0xPA5Px9L17t07n6grhOUXOb/44osKx98RQEcsKjDno6+wwgqpY/E4npAjFC+55BJ/r379+gpakitnb3M299ixY318EydOjDjusG7duv6n4Elf5dfRiIUmzFGH77//vv+5+r322itac801U3ErjXTXJ598stBk/XscPXn33XdHjRs3jnbaaSd/jOOJ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1ltv+c877LBD6l6pP9BPpk+f7qPdeOON/RUjTbnHqqRyTJw40Uk5SHpeynsYqFAEpQiVMu7FFdcyQ8ghS506dfJL3BDWZ599tgLGWIuPPfZYby2+7bbbKjwr5ZdatWqlorv66qtTn0v5ASvA33//7QlbjRo1coqaJbS6devmFLYqBvrrr798trE0lkMgDExCw4cP94oQddCsWTPHwIuyEx+ki80DPtS77rprYjQi6h06dEh8XsxN2uwqq6xSNmUy37ytttpq+b5ScHgGepT1M88806255ppuo402ci1btnTDhg0rOM5sL26yySauTp06PtgXX3yRLXjZno8cOdK37bIlkCHiX375xYHDWmuttVgsnNTn6quv7lq1apUhV+V/dOuttzoUssUpjFOQuWJWS7FUIpBrxkMJPtWsOnzwwQeOFb4rrrjCNW/e3K9wnXLKKZ5MXXPNNf653inVlflw0aJFDkPG3LlzSxWtjwey27ZtW3fAAQf41SwRXzgFwljdtWtX73YGYUQwCL766qslnxeIm7lIsssuu3iMMbZhLFqcAs7bbrut77eUtdzCOIHss88+5U4qY/y07Yceesi3t4wBkx5Gy4C88sorUaNGjaIDDzwweuutt6Lvv/8+WrBgQark//77b7TLLrtENWvWjB5++OFo4cKFqWfl+PDpp59Ghx9+eNSiRYtyRB89+OCD7Hbz5cmWAOH4e+ihh7IFrTLPqdvff/89Gjx4cDRjxgyf7//++y+69957o3POOSficymFtJo1a+ZxPOyww3z88+fP921O+B599NElS5LyrbDCCtFnn32WGOdZZ53l8/LTTz8lPi/05ldffeXblNrW0KFDC42qqPd69erly0c+jj/++OjXX3+NPv744+j111+P+vTpE/3444/RokWLikoDjPv37x898MAD0emnnx5tu+22Ua1atVLpql65HnrooUWlle1lyrPSSitFq6yySnTuuef69HbdddeIvzlz5mR7Pa/nL7zwQjRy5MhK72y//fa+7Jtsskn03nvvVXpezI0vv/wyevzxx9OOu/QpcG7Xrl2FcbuYNNO9O3fuXJ8W5S2XMDZ88803vr2m68Ok3bBhQ58X5ovFJfvtt59P85RTTik4ScZY9Y+99947Fc/LL7+cuq/n4ZX+dcABB0Tffvtt6p1SfZg2bVpUv359n/7NN99cqmhT8dA2VRb6peYD3Ut3HT16dCqOQj+MHTs2evLJJ6NHHnkkuu2226LtttsulZcwXcaxUsqoUaOi7t27R/CnJLn//vt9PmjH48aNSwpS0ntrr722n5/Kxd+IlzkPDvnOO++kzXubNm18ueFh+QonFVRrETmtUaNGNGvWrEplZQDea6+9ojXWWCPaeOONPZCQ90svvTRtQ6sUSRE3/vnnn+jNN9/0nalnz56+wouIzr9Kx6QjUqZMwmSuDvv2229nCrpUPZs+fXo0bNiwSnm6/PLLPUmBrKpcderUiZ577jkfFiL+ww8/eJJ10kknRaWY6CBLa621lk8P4qDBacKECSkCt/rqqyfmt1IBcrwxceJEn166yRyCSPlLMdgrS/STli1bpnDt3Llzycmg0sp0/fPPPyPqTvWb7rrBBhv4PjVv3rxM0aV9BsFPFzf3a9eu7Un6eeedF7344otp4yn0wezZs73Cdd9993nlHWNBUn4+//zzQpOo9N7MmTOjevXqRQcffHClZygESr+UhBylR2W74oorKqX7ySef+HTpxyi+xcjff/+d9XWUEcq52267ZQ2bT4CPPvoouuuuu6L27dt7jIUl5C1JGN8IA0nNJd9JcRRyT4T87LPPLuR1/w4GMOZb8s+VtoxMmjTJK5Yqe3hdccUVo++++67gNNO9yLglgehDymlLKPGlEIg+RrzmzZv78oZlCj8fddRR0brrruvDoNSiFKBcC5ti8tKtW7eMaa+55pq+7RVrpAjzSJtkXqOMtOl43NQ1PIrnxY6PzHe5CGMU9VtKoc089thjUceOHaNVV101hTPjf5IwhqreCzFYVWtCjsWscePG3voNSUF7nDx5cgpHyNNBBx0UbbTRRhEdC9l9991TgNLQSy0QcMhv165do2222cZPRhDIHXbYIYLkNGjQwFvyc22ESfmDgNIottxyy6THqXuafAiLxaaqyBNPPBEtv/zyUe/evStkGQ2Zslx77bXRkUcemapHyBn1D9lQZ9lqq62iYi3IH374oY9z6623rhAXgxMdmLQYIEqN7ddff+3jTkfIseaSNqSiVatWfiBJsnpWAC/LF4insPvf//5XaQAOX586dWqEpRVL2Z577hkxAUHm8xUGt7/++ssrTpA1KT7KB1cmhSOOOCK64IILoosvvtgr1+Fz6p56ylcoQxhP+JmB/48//sg3yqzh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D7799lt35ZVXuqlTp5Y0iUmTJnnF5uuvv040IKDYdujQwTE+7r///o7vJoaAIWAIGALFI7BMEfKzzjrLPfvssw7LVjrRBLznnnumC5L3/eWWW86/M27cONe4ceNK7//2229+ksOy2r9//0rP870xdOhQ/0qdOnXcyiuvnNPr++23X07hqmqgTTbZxIHHBx98kEg0ii0XRP+II45wtWrV8kT8xhtvdOecc45r0qSJO/DAA93PP/9cbBJp38caj9WyZ8+e3jqPxfawww5z//vf/9zo0aPTvpfvA9pv3bp13RprrJHvqwWHxyXkiiuuSPv+3Llz/bPddtvNbb755mnDFfLgvPPOc82bN3c9evRIfH3YsGH+/vrrr5/4vFw3WanAsHDLLbe4G264oahkxo8f71jVueCCC1yLFi38SgNtp127dr7tduvWrUL81113XUoJ2HrrrX17qBCghF+OOeYYb1QwS3wJQbWoDAFDYOlFIFpG5Ntvv42cc1GTJk2iuXPnpi315Zdf7sO98sor0dixY6MRI0ZECxcuTBs+lwefffaZj3ODDTZIDN6/f3//nPyddtppiWHyuXnvvff6+Jo3b571NdLk7/nnn88atioEmDFjRvTxxx9Hl156aXT22WdH3bt3jxYsWOCzPmrUqOjdd9/1n//777+SFefqq69O1V+vXr1S8a622mqp+4ceemjqfjEfxo0bFw0YMCC67777osMOOyxaZ511oho1akTLLbdcdPDBB0c9evSIBg8eHA0cONCnzf3//e9/Rbdh8rzJJptE6623XtbsgzdYf/PNN9GPP/6YNXy6AH/++WdUq1atqGbNmr7MSeHAm/ZLGSUXXXRRtPfee0d//PGHbuVYVtTwAAAdi0lEQVR9/e6771J1d/LJJ1d6f9asWVGdOnV8mE8++aTS82JuMFZtvfXW0euvv54YDW2aMjdr1iyaNGlSYphcb5533nk+Lup2+PDh0bx58yL6xnbbbefv07YmT57so/vll198fZD2tddeGy1atCjXZPIO9+GHH/r0Sevoo4/O+317wRAwBAyBqoaAq2oZLjS/xx13nB/g77rrrsQo+vXrF0HGIThMAssvv7z/4zMk5PHHH098L5ebIuQ77rhjYvA33ngjNfmEhC4xcA43n3jiCR/fpptumjH01KlTU+kyAVYV+fXXX6OHH364EiHYZptt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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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UR5Eevzxx106F154YcZpaERFQBFQBBSB9BDABJNQCjuZ6tChg61YsaJds2aNq+PixYstgywDbvXq1d21cePGud8yCHMsU6aM7dKli/3zzz8TYhPlxj333OPSPuKII2zr1q3tzTffHAyi8+bNK5CvXwbKzSD7448/RskqJsxPP/1kixcv7tKnHmFZsWKF3XPPPW3dunXt8uXLw7dz8vuOO+4I6h4vwe7du7v7hxxyiF26dGm8ICmv8Xxq1arl0rnqqqts79693TkkacKECY5EN27c2PIbYjVlyhR3f9ddd7Wff/55ShIlBfjll19cPJ5PJkTnqaeecvEhzN98840dPXq03W233SyEU2TYsGEuDGSqU6dOtm3btrZFixb2kksuseQfVXj20o6mTZsWNZqGUwQUAUVAEcgCge2aTB199NG2a9euFg3RCy+84DRAMtDcfvvtDrbNmzdbtAYMxmituN+mTZssIP2/qAyUO+ywgz388MPt9OnTbeXKlV3at9xyS5C2aK3CGrGDDjoo8kAfJPa/E7Rfoom56KKLYrRyEvb66693Zaldu7Y988wzbdOmTV0cNGT8Ueb27ds7rZ7ESecI4YCQgiWkJZHce++9LkyDBg0s5DJdOfvss512r3///i7qunXrrGifqBNaqcmTJ7vnT4AFCxa4/CjX66+/Hjk7SDBxIEO+ljNKAt9//31AbMHi22+/dQR/n332sRs2bLAzZ860N910k61QoYLLA+L96quvWjSH3333nSOBaPiIF0Vo65SVv4ceeihKFA2jCCgCioAikCUC2zWZgiiglQiTlRtvvLEAbAyS9erVc4NQpUqV7IknnuhMYGg2dt99d1u2bFnbqFGjyIMpmpGLL77YmRM7duwYDHCYYUTQIhAOefLJJ4MwaNQyFcyVDKQQst9//92+9dZblvpi2rzhhhtst27d3OCO5uqkk06ymAMJ88ADDzhtlQzEHNGmZSJSXwhZMgHz4447zpUXDVM6GphE6UJE0PpAqt58880CwSBGpUqVss2aNStwL9GFhg0bujIeeeSRiYLEvQ5RQvvnY8o5dYVgo3nccccdHUm7+uqrndYKTWSfPn0sJF8EckwcyGIUEbMn2KooAoqAIqAI5B+B7ZpMQVZEQ+IPaCNGjAiQXbRokZv9H3jggQUGPXymRHNTpUoVd1/IT5BAipP//ve/gWmRQRltRDxhcJUyojnKRD799NMgDak3ZqNddtkluE4e5557boyJSfJCmyZmM8K9+OKLcivyEf8uiFr9+vXtsmXLUsYTExj5gfdtt91mV65cmTJeogC//vqr00glup/udTR9YjJt1apVpOiQxHPOOcdpJuWZyvGYY46xs2fPdun8888/zl8PsoTpD0HbxvMiDfzJLr/88uDZoa2KIuRBfmi0fFIWJa6GUQQUAUVAEUgfge16NR+bGD7yv28LHnfccaZNmzbOrZ+dsVk+zq7RNWvWNCybP/HEE92Selb01alTx4VjddTQoUPNt99+65bQs88QS/ujCivqWE4vWwOw/YBsJBn+nI2/iSir3J588klz2WWXudVZLKmPIv6S/XXr1pl+/fq51XwzZ84MNiFlhSD7HMXb2JFr5CnCNg7pCOVkBSFbIoA7+3mxWSn7arExKKsZ9913X1OiRAn3PTk27nzllVeCLFjxRry6deu6MgpuQYAIJ+xMzueAWNUXFra6YE8tVubxyZkowq71sjXFTjvtFCWKYeUkqzCpz1lnnRVsUMoqwq+++sptGMsKxN12283t7cXqQHZtHzt2rGErDPbHIg3y3X///U2vXr0M+2exx1UU2XXXXV0w2gA7wasoAoqAIqAI5BmBZPyrsDugS93QDjHTv+uuu9yMHc3PI4884vxSZCUbWpnhw4fbXr16OTORaBIww9x9992SVFrH559/PtAqkJ44wuP0jiM8TuZffPGFS3PGjBkxYSV/jpQ/iqBlY7UZcapVq2b5LSsI0RRxHdMSK8n69u3r/jCtSRjyePjhh104/L0SadHilQVHdsxg5EHd8IfCNMpv/2+//faL8V3jHqZYWRjgh23SpIkzh8XLL3wN/yieqaSDeW3VqlX277//tvjH4Qcm/lSSB6sJU/kV4bck4TGTRhVMcix4wNSH2Q1NIZolfPh22mknt7CANkm58eViNR+aRcqJ/142gs+flJm2pqIIKAKKgCKQXwS2azOfDx1EScxd48ePd7d+++03y6oyBngZfMJHBsHTTz/dTyrS+cSJEwuYGCUi5EjyEaIUJlOU9bLLLnOER5bRS/xkx/fffz9ImzxYuYbI0nshD5ihpAwnn3xykKSQKRyiowqkBeJDepjq2AqBP0lfjqeddpojchANccjHhIa5i5V5bOEAeZXwHCEemO7CAlH5+eef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X35pS5YsaQ855BD7+++/F0j/l19+scWLF7fNmjWz69evL3A/mwsDBgywFStWtC+++GLcZDp27OjqfdRRR9lNmzbFDZPORUlvzz33tCtXroyJSvo77LCDy2/48OHBvQsuuMBde+edd4JrmZxMmzbNXn/99S6tsmXLWnBHXnnlFXetWLFitnz58u6cZ92jR49MstE4ioAioAgoAorAdoEAJqSs5Ndff7X333+/3bBhg0tn2bJltmHDhm6gZfDNlZDuXnvtZevUqePyIt/bbrvNHnHEEfaqq65yBOaYY46xu+++u12+fLnduHGj/fzzz23v3r3te++9l1UxfvzxR0fiIA6QmClTpsSk991331kIBkRuzJgxMfcy+bF582ZbpUoVh+Hjjz9eIInZs2cHRGbq1KnB/Ro1arjr4LR69ergeqoTyt+pUyfbunVrW6tWrSBt6svfgQceaA8//HBXR7kmx0qVKtn58+enykLvKwKKgCKgCCgC2y0CWZGpf//919avX98NuA899FAA0qxZsywDO1qkL774IriezQmaLgbwXXfd1dauXTsY8NHcQKwuv/xyd43frVq1cuFkwK9QoYJdvHhxRtlD4nyC0bVr1xjN07p16wLy+Pzzz2eURzjSt99+6+oCQQPLsHz//ffufunSpS3ESwQi165dO1uiRAl7++23y+WUx3fffTfAUzCT42GHHWYPOOCA4D74T5w40R5//PHu2p133pkyfQ2gCCgCioAioAhszwhkRaZkEIbALFiwIAanH374wZEpTGP//e9/Y+6l8wOT1g033OAG7nLlylkIhAz0Z511ll26dKm98sor3TW0Uoceemhwv2rVqvbqq6+206dPTyfLmLBXXHGFSw9iOHjw4Jh7/Hj44Yfd/ZtvvrnAvUwvUGbqeP7558dNok+fPu7+/vvvH9z/559/LOY5BM0Vf1EF7Rb57bLLLvboo492ZLR69eru2o033mghlG+//bb7fc4557hk0VQR55NPPomajYZTBBQBRUARUAS2SwQyJlOY0Ro0aOAGVPyJ4smjjz7q7leuXNn+9ttv8YKkvNa9e3eXxj777OPSeOmll9xvNF9om/78809brVo1C+mB0A0bNszdP+WUUyyas2zkgw8+cGlhvuM8LDNmzLD4FNWsWdMuXLjQ/v3333by5MkW362xY8c6coMfWTqCfxSkEfIW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ghB5twlL/gcddJC7Xtj+ffTRR+bMM880rVu3NgMHDkxZ/Lfeess0a9Ys7jueMnIoACR87NixhjKgwWcs5RzME4mQ2UT3s7m+2267ZRM9cVxbRGXjxo32iy++sPfcc4899dRTbd26dW2pUqWwwST9a9Cggd28efMWQW3ChAl2wYIFGec1ffp0V5d69erFpEH577jjjgL1POSQQ+yUKVNiwqb748knn3Tp1qhRw06dOjVu9AceeMCFefvtt+Pez9XFZcuWBXUcMWJErpKNSefvv/92edB2xo4dG3Pv3XffdffKlStneRb5EJ7XwIEDbffu3e1LL70UZHH22We7vM8666zgWqYnX375pZ09e7aLvmbNGrvnnnvaSpUq2R9//LFAkvPmzXP51q9fv8C9XF4YNWqUy0fe12effTaXycek9dNPP1meczxZvXq1rVWrlitL165d4wUpdNf+/fdfe9JJJ8Xg+9Zbb+WtHn369HF50aaGDBlSIJ/Bgwe7++edd55dv359gfuZXDjuuOOC+nXo0MGSdtWqVYNr0q7Cx6+//jqT7Fwc2kq2/WummT/66KOubs8880xMEmD79NNP24ULFwbXV65caXfaaSfbu3fv4Fq6J/QZp5xyiqUfiDeu3nXXXXGTvPDCC105KVMu5fnnnw+ereS9aNEiyxj7119/Wfq1bAUNwXYtkKZJkyZZBrbnnnvO3nbbbZYBpkKFCgG44Rcm1e/PPvtsi2BWrVo1y0Acb9CKUoAffvjB1fHggw+OCX7//fcHdd95553tjTfeaGlg1Lt48eK2ZcuWlkExEznssMNcOp988knC6J06dXJheOHyKXPnzg3qGSY6ucoXMg5up512WoEkjznmGHfvtddeK3Av2wvDhw+3derUCeq344472o8++sglC/EpUaKEu5dp25HyrVixwlapUsWWLl3aXnfddfaCCy4I8jz22GMlWHCcMWOGu88zzre88MILtlGjRi6/Ll265CW7fv362WLFitndd9/d/vPPPwXyuPfee13+NWvWzNlAXyCTLXyBQTTcB+677752+fLlOS8JJJU+rnnz5kGfQ/tl8rNp0yY7c+ZM11cff/zxdsOGDTnJn36RPjFcR//3CSecYJmEcm3XXXe1tOfWrVsXmDClUyAIf8mSJe0HH3yQTrSchL3mmmtcXcL9MsoB6siYIAK53WGHHSyk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PYzjPMeOHevGjx/vOnXq5Fq1apX3MfMxwIYNG1zFihXz0bX6FAER2EIJrFq1yi1btsytXr0ax4CrX7++q1GjxhZ6tDqsQiYgMVXIV1fnJgIiIAIiIAIikHcCZfM+ggYQAREQAREQAREQgQImIDFVwBdXpyYCIiACIiACIpB/AhJT+WesEURABERABERABAqYgMRUAV9cnZoIiIAIiIAIiED+CUhM5Z+xRhABERABERABEShgAhJTBXxxdWoiIAIiIAIiIAL5JyAxlX/GGkEEREAEREAERKCACUhMFfDF1amJgAiIgAiIgAjkn4DEVP4ZawQREAEREAEREIECJiAxVcAXV6cmAiIgAiIgAiKQfwISU/lnrBFEQAREQAREQAQKmIDEVAFfXJ2aCIiACIiACIhA/glITOWfsUYQAREQAREQAREoYAISUwV8cXVqIiACIiACIiAC+ScgMZV/xhpBBERABERABESggAlITBXwxdWpiYAIiIAIiIAI5J+AxFT+GWsEERABERABERCBAiYgMVXAF1enJgIiIAIiIAIikH8CElP5Z6wRREAEREAEREAECpiAxFQBX1ydmgiIgAiIgAiIQP4JSEzln7FGEAEREAEREAERKGACElMFfHF1aiIgAiIgAiIgAvknIDGVf8YaQQREQAREQAREoIAJSEwV8MXVqYmACIiACIiACOSfQM7F1K+//uo2b96c/yNPMsKCBQvc7Nmzk7TSZhEQAREQAREQARHIjkBOxdSqVatc8+bN3VtvvZXdUSXZe9OmTe6aa65x//73v2O2XLJkiTv88MNd69atY27XytQIIEanT5+etPGMGTPckCFDfFuujUwEREAEREAEShOBnIqp7777zi1btszdd999eWXYpUsX98gjj3gxtXbt2iJjbdiwwXXs2NF7pc4888wi2/L95oEHHnDt27d3U6ZMyfdQbv369W7UqFHu9ttvd9ddd527//773dy5c3M6bqdOndwBBxyQ9HzefPNNd9lll/m2zz77bE6PQZ2JgAiIgAiIwJZOoHwuD9CEzdixY93kyZNdq1atctm97+uOO+5wjz76qKtevbp7+OGHXZUqVYqMceWVV7px48a5rl27eoFRZGOWb9atW+cqV64cs5c5c+a4G2+80W3cuNFNmzbNHXTQQTHbZbpy8eLFXqh+/PHH7qmnnnIsOZ6w3XzzzY522267bXh1xq/xSlWtWtW1aNEi5T723XfflNuqoQiIgAiIgAgUAoGceqZatmzpOnfu7Llce+21Oc+dwhPTq1cv16FDB/fNN9+4888/3xFWWrNmjR8TEYXQOO+887yQKlOmTM6u0UMPPeSFRffu3WP2yXEhpI4++mjvpYnZKMnKpUuXuvHjx7sePXq4Nm3a+L/LL7/ce6Hw9u25557uoosu8mJxm222cWeffbarWLFipFfY50pIwZXct3LlyrmyZRN/TMqX/0uT16lTJ3I8eiECIiACIiACpYJAkKW99957QZcuXYLly5f7ntavXx8ce+yxgXMu6NevX5a9/7X7b7/9FtSuXTto1qxZsGLFiuCFF14IOnbsGFStWjW4+OKLg1WrVgVNmjQJ9txzz2DDhg3BwoULg0ceeSS4/vrrg3vuuSfYuHHjX52l+eqNN94IypYt68+J8/ryyy+L9DB27Fi/bdtttw1+/vnnIttSfXPeeedF+q9Ro0bkddu2bX0Xt9xyS2TdDTfcEKxZs8av32effSLrf/zxx1SHS9qO68m5litXLmnbYcOGRY7BPgdJd1IDERABERABESgQAi6b80A47bzzzv5Gevfdd0e6Wr16ddCiRQu//uWXX46sz/QFQghRwc29cuXKQfXq1SM37/322y+YOXNmcPLJJ/t1derUCVq2bBmUKVMm0qZ+/foRsZfuMfz+++/Bjjvu6PtCWAwYMCDYvHlzpBvOtXHjxl50vPbaa5H16b5AJHJ+1157bQBXXvOHWMVMTJ1wwglFut599919u/3337/I+kze/Prrr8EzzzzjdzUxxTFMnTo1QDAuXbo0ZrejR4+OHG/MBlopAiIgAiIgAgVMICsxNXjwYH8TRdCYp8RYff/990G1atWCKlWqBB988IGtTnuJWDnxxBP9OA0bNgwQSyY0unbtGqxduzY4/fTT/bqDDjooOOmkk/xrhM+RRx4ZDBw4MFi0aFHa49oO5jHaZpttgrfffttWR5a33XabH+++++6LrMvkhYkpRMuSJUt8n3idzExMNW3aNMAzdfbZZ3sPnHnMevbsaU0zXh5zzDF+XM7p0Ucf9a+NNct77703Zt8mpjgWmQiIgAiIgAiUNgIZi6l169YFjRo18jfc119/PSa34cOH+/AYnqTPPvssZptkK03MtGnTxosMPCfc2PHIzJ8/P/jpp58CvDUPPfSQ9+iMGjXKbz/++OOLeJCSjRNr+0svveT7qlChQsRDFG73xRdfBGzba6+9ggULFgSTJ08OxowZE4wYMcL/ITI++uijlEKMJqY+//zz4NVXX/XjXnXVVZHhTEyZuKlbt27wyy+/+Has47yzsVdeeSXSl41hS4Tkdddd50OnjIG37K677vLnzHsTU3gpZSIgAiIgAiJQ2ghkLKYQL9xsDzzwwISi5amnnvLt8FLhdUnXevfu7fez0BrhJ3KTGHv77bcP5syZU6TLb775JqhYsaLfTq5UpoZQqVmzpu/n2Wef9d38+eefwezZs324C48ZOVomOBBVO+20U1CpUqXIOtvWrl27pIdhYoqcK8Qp+4a9TWExxXlzTBMmTIiMRU5ZprZ48eJghx128FzxSJ1//vlFwqTRjK+88ko/7r777uuHNDHVoEGDTA9B+4mACIiACIjAVksg8TStOCn41DO67bbbXK1atdwLL7zgEs2aY/bZwQcf7P744w933HHHuf79+7s///wzTs/FV//rX//yM+RsjBo1arhPPvnEsZ56UzvssEORnfbaay/3/vvvu759+7rjjz++yEtHobAAACAASURBVLZU3wRB4C655BK3fPly17RpUzdr1ix3xBFH+PNt1KiR22677Vz9+vX9jEJm1L3yyituxYoVbv78+W7lypVu8ODBRWbAcUypGjPnDj30UD+Ljr7MmCmI7b777u777793J510kh+HdZUqVXJ169a1pmkvKemw4447us8//9xRWuK5554rUhCV2ZG77LKLq1atmnv88cedzdjj+ocNBjIREAEREAERKG0E/prTnuKZIzSoPo7QGDNmjGvcuLHfk6n08+bNc9RbomwBxTu52TZr1ixyo6dNnz593PDhw93AgQPdsccem+KofzVDlCGUzj33XHf66af/tSH06rDDDnP8ZWojRoxw7777rt/9q6++8iUPEG4IrEsvvdSXY+D8KZRJwcywUaqANlQFf/DBB/2mo446Ktwk5mu4YogmxFq9evXcjz/+GGm7evVq/5ryCYjETz/9NFJ6grbYBx984EsrII4QPqna1Vdf7QtuUjkesfTGG2+4t99+O7L7pEmTIq9fffVVd8IJJ/j3tWvXjqznxZbwGKEiB6Q3IiACIiACIlACBNISU9zwqR81evRo7xHips+Nmxv7Z5995ush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gAjEJSAxFReNNoiACIiACIiACIhAcgISU8kZqYUIiIAIiIAIiIAIxCUgMRUXjTaIgAiIgAiIgAiIQHICElPJGamFCIiACIiACIiACMQlIDEVF402iIAIiIAIiIAIiEByAhJTyRmVWIuPPvqoxMbSQCIgAiIgAiIgArkhIDGVG45Je9mwYYPr1q2bW7FiRcy2gwcPdm3atHHDhw+PuX1rXjl69Gi3zz77uCuvvNLBQSYCIiACIiAChURAYqqEruZ//vMf99JLL7k//vij2IhTp051Xbt2dSeddJI7/fTT3fLly93dd9/tNm7cWKxtuivo44svvnCPPvqoFzNt27Z1e+65p9t2221dmTJlXK1atdy5557rZs+enW7XKbf/8ssv3axZs9xzzz3ngiBIeT81FAEREAEREIGtgUCpE1N4h1avXp3w2nz//fdeaDRs2NB16dLF/fnnnwnbJ9uImLnzzjvdG2+84XbccUf3+OOPu/PPP9/vtmbNGnfRRRd5UfP000+7J5980u2xxx7u5ptvdmzLxsaMGeN22GEHt99++7mrr77avfLKK27XXXd1DzzwgPv222/dO++841atWuVeeOEFt9dee/n12YyXbN+DDz7YVapUKVkzbRcBERABERCBrYpA+a3qaLM82MmTJ7v77rvPe3wefPDBuL2tW7fOb5s7d6778MMPXbly5eK2TbaBvi677DL3z3/+0/fTrl07N3HiRHfEEUd4L83ll1/u8Nwg3I488kjvRWrQoIEbOnSoq169erLuE27/+uuvvZeLRhdffLHr16+f9xB99913rkaNGq59+/aufPnybtOmTa5s2bKuWbNmCfvLduN2222XbRfaXwREQAREQAS2OAKlSkzhicEeeughV79+fdezZ8+YFyQcijr00EO90IjZMMnKzZs3ew/TZ5995hYvXux69+7thQvC6fnnn3fPPPOMX1apUsX98ssv/u/SSy/1HqJtttkmSe/JN7do0SLS6Nlnn/UCjRWVK1f23qixY8e69evX+zZ4y4466qhI+3y82H777fPRrfoUAREQAREQgb+VQKkL8xntW2+91Y0bN87eFlkuW7asyPtM3yCM8IAh3HbffXeHuMLwSiEs8Hwxg4+wY+vWrR2iitymXAgpxkEcNW/e3I+JQDzxxBN9gvuiRYv8MRDyxE477TTXuXNn/zqf/+D9komA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d86fPz/dXYu0xwM0a9Ysn7NFxfNwHSZryOw38od4Nh65Q9na4sWLffiMfhE6zBTEY0T4jbAZOWRhI9SHiJo2bZqjKnq/fv18natwG70WAREQAREQARGITUBiKgaX1atXu2OOOcZ7WvDSlITVr1/ftW3b1g0fPjwnw1Gok9IE7dq1ixQqzUnH6kQEREAEREAERKAIgVIT5ity1kne8Dy+jz76KEmr3G4mlyqXuVPkPslEQAREQAREQATyT0CeqfwzTmkEnltHYnxJJ8endHBqJAIiIAIiIAIiEJeAxFRcNNogAiIgAiIgAiIgAskJlJrSCMlRqIUIiIAIiIAIiIAIpE9AYip9ZtpDBERABERABERABCIEJKYiKPRCBERABERABERABNInIDGVPjPtIQIiIAIiIAIiIAIRAhJTERR6IQIiIAIiIAIiIALpE5CYSp+Z9hABERABERABERCBCAGJqQgKvRABERABERABERCB9AlITKXPTHuIgAiIgAiIgAiIQISAxFQEhV6IgAiIgAiIgAiIQPoEJKbSZ6Y9REAEREAEREAERCBCQGIqgkIvREAEREAEREAERCB9AhJT6TPTHiIgAiIgAiIgAiIQISAxFUGhFyIgAiIgAiIgAiKQPgGJqfSZaQ8REAEREAEREAERiBCQmIqg0AsREAEREAEREAERSJ+AxFT6zLSHCIiACIiACIiACEQISExFUOiFCIiACIiACIiACKRPQGIqfWbaQwREQAREQAREQAQiBCSmIij0QgREQAREQAREQATSJyAxlT4z7SECIiACIiACIiACEQISUxEUeiECIiACIiACIiAC6ROQmEqfmfYQgZQJbNy4MeW2aigCIiACIrB1EpCY2sKu2+bNm92mTZu2sKPS4WRCYNiwYW6fffZxK1euzGR37SMCIiACIrCVEJCYcs4tW7bMHX744W7FihV5v2yjRo1yn376acxxli9f7po1a+YuuOCCmNvztXLOnDnujjvucDNnzszLEHhnZs+e7caMGeP69Onjzj33XNehQwfXuXPnvIwX7nTdunVu3Lhx7pFHHnFPPPFEiQrVr7/+2n3//ffu/PPPdxs2bAgfll6LgAiIgAgUEIHyBXQuGZ/K5MmT3cSJE93w4cPdVVddlXE/yXa87777XLdu3Vzt2rXdkiVLijQPgsBddNFFbtasWa5Vq1ZFtuXyzdq1a92XX37ppk+f7j744AM3duxY9/vvv/shEHkjR47MyXAI09atW7v58+fH9cwceeSRORkr3AnXcMKECW7RokXuxx9/9AIx7Ok77rjjXIMGDcK7ZPV6zZo1bu7cuW6vvfYq1s8uu+zi140ePdrdfPPNjutf0vbVV1/5a42Ya9q0qWvZsmVJH4LGEwEREIHCJxDIgmHDhgXOuaBhw4bBH3/8kRciAwcO9GOUL18+uPfee4uN0b9/f7+9Q4cOwerVq4ttz3bFhx9+GFSoUMGPwblG/5UpUybo06dPtsNE9t+4cWNQvXr1YuMw7sEHHxy89NJLwebNmyPtc/Vi5513jjnmAQccELz99tu5GibSz2233RZss802Mftet26dP88hQ4YEP/zwQ2SffL748ccfgwsvvDBo3759sNtuuxVj8Y9//COfw6tvERABESiVBFypPOuok/7mm2+CWrVq+RvPjTfeGLU1+7fvvfee77t58+bBtGnTinU4efLkoGzZssGxxx4brFmzptj2bFYgIL7//vtg2bJlQe3atYvdXBE3O+64YzBlypRshom57zXXXBOUK1cuQECaeLv44otjts3Vyocffjho1apVcP755weXX3550KNHj2DChAm56r5IP3Pnzg2qVKniz23o0KFFtpXEm1WrVgVffPFFMHXq1GDp0qV+yCeeeMIfz6677up/JLD9wAMPjPBH1MtEQAREQARyS6AM3RW+LVtq7gAAE4RJREFU/634Gf7www8+BHT66af7jeS2HHrooT5/6pNPPnEHHXRQ8Z0yWEM+1sEHH+yqVq3qPv74Yx9Se+ONN9yrr77qGPvCCy/0oRfyiqZOneq22WYb9/PPP/tcm0aNGrnddtstg1H/2oXzIBeKP8J7jNe+fXufs3TggQe6KlWquMaNG7tq1ar9tVOOXhFeW79+vR/XQpfPP/+8K1eunJs0aZL77bff/GvCgWeddZbbaaedcjIyLBm7UqVKvj9Cqx999JHPRSMnjXBX3bp1sx7r8ssvd4MHD3YDBgxwt956a7H+Vq1a5cedMmWK+/bbbx3HxfiXXnqp23HHHYu1T7aC/K/HH3/chy8/++wzx+eUCQvYaaed5kO0f/75p+vRo4fr27evq1Wrlt/Ws2dPd9ddd7maNWv6sCvXXCYCIiACIpBDArnVZltHb4Rf9thjD/9r/a233ooc9EcffeRDYYRHfv/998j6bF6cc845fpw999wzOPLII70HCi8N4Si8Qeeee67ffsghhwSdO3cOtt9+e/+eNvXr1w82bdqUzfBBs2bNgho1agTr16/Pqp9Md96wYUNAKMw8U7GWlSpVCipXrhzgVcmFHX300UG1atWCdu3axQx14QXkWowfPz7j4fD20c++++4bENJcsmRJpK+nn346OO6444KKFSv6895ll118CNnOHU/d4MGDI+1TffHVV1/F5dirV69IN4sXLw4OO+yw4IEHHvDr8BAydqdOnSJt9EIEREAERCB3BJKG+ZaOGBF8f/LJwbcdOgTz+/cPNuUhnyd3p5NaT4899pi/uey+++7BypUri+z073//229r2bJlsGLFiiLb0n3DDY6bWDjMxXvCedx8r7/+er99p512CnbYYQf/mu28vuSSSwLCj9lavXr1giZNmqTUDSJz9uzZwTvvvJNx2A/RNmbMmIA8oYsuuiioWrVq5Lw4txNPPDFyrpznxIkT/bF98sknXgARpsvECLndfvvtRcQTuUO9e/eOjI+46N69e+Q9x4OAzsRuueUW388bb7zhhRF5U3/++WcQFjyIOgufvvLKK5FxCSlPnz497WHJMSN8x3HbHyKU8wqL7vfff99v5xgxwp60f+qpp9IeUzuIgAiIgAgkJ5BQTP1y/fXBFOeK/H21//7BxigBknyYLacFN3s8Ptxcxo4dW+zA8DKcdNJJfjveokyTwf/1r3/5PvByffnll8G1117r3x966KHek/Hmm296zwUeDLwc//nPf/z2q666qtgxZbpiwYIFvk+8U2FDJHJz79evX3Deeed5Lwaiy27QLBEH8+fPD++W9DXCBI/ImWee6cUg/ey1114+4Z7XeHGwzz77zI/F+GHDW4Q3J10RuXz58gDvFmMwPmPymvyzjz/+2L9u1KiRFxyINrZZ20w8dgg3RCIePz5D5IWZZ2j06NG+76OOOioicPByclw27kMPPRQ+7bRev/766xHvJdfo888/L7b/oEGD/FgjRozwn188aIz9yy+/FGurFSIgAiIgAtkTiCumVk2cWEREhUXVr7femv3If1MPDz74oL+xEHaLZ2vXrvVhIG5A3OAtuTde++j1CLDGjRv78BZJwhiJ4HYzRayFPQlsJ+zDdsQEN8xcmHngSDBHwIwcOdInZuPNsGNJtMSL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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**对变量进行分箱**,Python中的函数pd.cut和pd.qcut"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# pd.cut"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- **pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)**\n",
    "\n",
    "参数：\n",
    "\n",
    "x : 输入待cut的一维数组\n",
    "\n",
    "bins : cut的段数，一般为整型，但也可以为序列向量。\n",
    "\n",
    "right : 布尔值，确定右区间是否开闭，取True时右区间闭合\n",
    "\n",
    "labels : 数组或布尔值，默认为None，用来标识分后的bins，长度必须与结果bins相等，返回值为整数或者对bins的标识\n",
    "\n",
    "retbins : 布尔值，可选。是否返回数值所在分组，Ture则返回\n",
    "\n",
    "precision : 整型，bins小数精度，也就是数据以几位小数显示\n",
    "\n",
    "include_lowest : 布尔类型，是否包含左区间\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T01:48:14.044450Z",
     "start_time": "2019-04-29T01:48:05.008583Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T01:48:15.190851Z",
     "start_time": "2019-04-29T01:48:15.146852Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[27 70 55 87 95 98 55 61 86 76 85 53 39 88 41 71 64 94 38 94]\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(666)\n",
    "score_list = np.random.randint(25, 100, size=20)\n",
    "print(score_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T01:48:16.509628Z",
     "start_time": "2019-04-29T01:48:16.399906Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.arrays.categorical.Categorical'>\n"
     ]
    }
   ],
   "source": [
    "bins = [0, 59, 70, 80, 100]\n",
    "score_cut = pd.cut(score_list, bins)\n",
    "print(type(score_cut)) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**等宽分箱**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T01:48:21.041218Z",
     "start_time": "2019-04-29T01:48:21.001217Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(26.929, 50.667], (50.667, 74.333], (50.667, 74.333], (74.333, 98.0], (74.333, 98.0], ..., (50.667, 74.333], (50.667, 74.333], (74.333, 98.0], (26.929, 50.667], (74.333, 98.0]]\n",
      "Length: 20\n",
      "Categories (3, interval[float64]): [(26.929, 50.667] < (50.667, 74.333] < (74.333, 98.0]]\n"
     ]
    }
   ],
   "source": [
    "cut2=pd.cut(score_list,3)\n",
    "print(cut2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:00:02.948176Z",
     "start_time": "2019-04-29T02:00:02.936175Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(0, 59], (59, 70], (0, 59], (80, 100], (80, 100], ..., (70, 80], (59, 70], (80, 100], (0, 59], (80, 100]]\n",
      "Length: 20\n",
      "Categories (4, interval[int64]): [(0, 59] < (59, 70] < (70, 80] < (80, 100]]\n"
     ]
    }
   ],
   "source": [
    "print(score_cut)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:00:09.566583Z",
     "start_time": "2019-04-29T02:00:09.466358Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0, 59]      7\n",
       "(59, 70]     3\n",
       "(70, 80]     2\n",
       "(80, 100]    8\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "score_cut.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:00:10.939710Z",
     "start_time": "2019-04-29T02:00:10.923710Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(80, 100]    8\n",
      "(0, 59]      7\n",
      "(59, 70]     3\n",
      "(70, 80]     2\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(pd.value_counts(score_cut))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:05:49.581244Z",
     "start_time": "2019-04-29T02:05:49.344974Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    score student\n",
      "0      27     1ul\n",
      "1      70     yuK\n",
      "2      55     WWK\n",
      "3      87     EU6\n",
      "4      95     Vqn\n",
      "5      98     KAf\n",
      "6      55     QNT\n",
      "7      61     HaE\n",
      "8      86     aBo\n",
      "9      76     MMa\n",
      "10     85     Ctc\n",
      "11     53     5BI\n",
      "12     39     wBp\n",
      "13     88     WMB\n",
      "14     41     q5t\n",
      "15     71     MjZ\n",
      "16     64     nTc\n",
      "17     94     Kyx\n",
      "18     38     Rlh\n",
      "19     94     2uV\n"
     ]
    }
   ],
   "source": [
    "df = pd.DataFrame()\n",
    "df['score'] = score_list\n",
    "df['student'] = [pd.util.testing.rands(3) for i in range(len(score_list))]\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:06:13.685191Z",
     "start_time": "2019-04-29T02:06:13.665188Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       (0, 59]\n",
      "1      (59, 70]\n",
      "2       (0, 59]\n",
      "3     (80, 100]\n",
      "4     (80, 100]\n",
      "5     (80, 100]\n",
      "6       (0, 59]\n",
      "7      (59, 70]\n",
      "8     (80, 100]\n",
      "9      (70, 80]\n",
      "10    (80, 100]\n",
      "11      (0, 59]\n",
      "12      (0, 59]\n",
      "13    (80, 100]\n",
      "14      (0, 59]\n",
      "15     (70, 80]\n",
      "16     (59, 70]\n",
      "17    (80, 100]\n",
      "18      (0, 59]\n",
      "19    (80, 100]\n",
      "Name: score, dtype: category\n",
      "Categories (4, interval[int64]): [(0, 59] < (59, 70] < (70, 80] < (80, 100]]\n"
     ]
    }
   ],
   "source": [
    "print(pd.cut(df['score'], bins))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:06:17.315753Z",
     "start_time": "2019-04-29T02:06:17.291753Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    score student Categories\n",
      "0      27     1ul    (0, 59]\n",
      "1      70     yuK   (59, 70]\n",
      "2      55     WWK    (0, 59]\n",
      "3      87     EU6  (80, 100]\n",
      "4      95     Vqn  (80, 100]\n",
      "5      98     KAf  (80, 100]\n",
      "6      55     QNT    (0, 59]\n",
      "7      61     HaE   (59, 70]\n",
      "8      86     aBo  (80, 100]\n",
      "9      76     MMa   (70, 80]\n",
      "10     85     Ctc  (80, 100]\n",
      "11     53     5BI    (0, 59]\n",
      "12     39     wBp    (0, 59]\n",
      "13     88     WMB  (80, 100]\n",
      "14     41     q5t    (0, 59]\n",
      "15     71     MjZ   (70, 80]\n",
      "16     64     nTc   (59, 70]\n",
      "17     94     Kyx  (80, 100]\n",
      "18     38     Rlh    (0, 59]\n",
      "19     94     2uV  (80, 100]\n"
     ]
    }
   ],
   "source": [
    "df['Categories'] = pd.cut(df['score'], bins)\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:06:42.399318Z",
     "start_time": "2019-04-29T02:06:42.307317Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    score student Categories     qujian\n",
      "0      27     1ul        low    (0, 59]\n",
      "1      70     yuK     middle   (59, 70]\n",
      "2      55     WWK        low    (0, 59]\n",
      "3      87     EU6    perfect  (80, 100]\n",
      "4      95     Vqn    perfect  (80, 100]\n",
      "5      98     KAf    perfect  (80, 100]\n",
      "6      55     QNT        low    (0, 59]\n",
      "7      61     HaE     middle   (59, 70]\n",
      "8      86     aBo    perfect  (80, 100]\n",
      "9      76     MMa       good   (70, 80]\n",
      "10     85     Ctc    perfect  (80, 100]\n",
      "11     53     5BI        low    (0, 59]\n",
      "12     39     wBp        low    (0, 59]\n",
      "13     88     WMB    perfect  (80, 100]\n",
      "14     41     q5t        low    (0, 59]\n",
      "15     71     MjZ       good   (70, 80]\n",
      "16     64     nTc     middle   (59, 70]\n",
      "17     94     Kyx    perfect  (80, 100]\n",
      "18     38     Rlh        low    (0, 59]\n",
      "19     94     2uV    perfect  (80, 100]\n"
     ]
    }
   ],
   "source": [
    "df['Categories'] = pd.cut(df['score'], bins, labels=['low', 'middle', 'good', 'perfect'])\n",
    "df['qujian']=pd.cut(df['score'], bins)\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:07:06.504226Z",
     "start_time": "2019-04-29T02:07:06.428225Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([(26.929, 50.667], (50.667, 74.333], (50.667, 74.333], (74.333, 98.0], (74.333, 98.0], ..., (50.667, 74.333], (50.667, 74.333], (74.333, 98.0], (26.929, 50.667], (74.333, 98.0]]\n",
       " Length: 20\n",
       " Categories (3, interval[float64]): [(26.929, 50.667] < (50.667, 74.333] < (74.333, 98.0]],\n",
       " array([26.929     , 50.66666667, 74.33333333, 98.        ]))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.cut(score_list, 3, retbins=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# pd.qcut"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- **pd.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**等频分箱**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.314791Z",
     "start_time": "2019-03-29T03:48:10.205791Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(0.688, 3.394], (-0.0458, 0.688], (0.688, 3.394], (0.688, 3.394], (-0.679, -0.0458], ..., (-0.0458, 0.688], (0.688, 3.394], (-0.679, -0.0458], (-3.197, -0.679], (-0.679, -0.0458]]\n",
      "Length: 1000\n",
      "Categories (4, interval[float64]): [(-3.197, -0.679] < (-0.679, -0.0458] < (-0.0458, 0.688] < (0.688, 3.394]]\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(666)\n",
    "data = np.random.randn(1000)\n",
    "cats = pd.qcut(data, 4)\n",
    "print(cats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.404791Z",
     "start_time": "2019-03-29T03:48:10.318791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-3.197, -0.679]     250\n",
       "(-0.679, -0.0458]    250\n",
       "(-0.0458, 0.688]     250\n",
       "(0.688, 3.394]       250\n",
       "dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.584791Z",
     "start_time": "2019-03-29T03:48:10.406791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[优秀, 良好, 优秀, 优秀, 及格, ..., 良好, 优秀, 及格, 差, 及格]\n",
       "Length: 1000\n",
       "Categories (4, object): [差 < 及格 < 良好 < 优秀]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.qcut(data, 4,labels=['差','及格','良好','优秀'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.672791Z",
     "start_time": "2019-03-29T03:48:10.588791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "差     250\n",
       "及格    250\n",
       "良好    250\n",
       "优秀    250\n",
       "dtype: int64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.qcut(data, 4,labels=['差','及格','良好','优秀']).value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.803791Z",
     "start_time": "2019-03-29T03:48:10.674791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>data</th>\n",
       "      <th>cut</th>\n",
       "      <th>qcut</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>(-0.009, 1.8]</td>\n",
       "      <td>(-0.001, 1.8]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>(1.8, 3.6]</td>\n",
       "      <td>(1.8, 2.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>(1.8, 3.6]</td>\n",
       "      <td>(1.8, 2.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>(1.8, 3.6]</td>\n",
       "      <td>(1.8, 2.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>(1.8, 3.6]</td>\n",
       "      <td>(1.8, 2.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>(5.4, 7.2]</td>\n",
       "      <td>(3.6, 7.2]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>(5.4, 7.2]</td>\n",
       "      <td>(3.6, 7.2]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>(7.2, 9.0]</td>\n",
       "      <td>(7.2, 9.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>(7.2, 9.0]</td>\n",
       "      <td>(7.2, 9.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0</td>\n",
       "      <td>(-0.009, 1.8]</td>\n",
       "      <td>(-0.001, 1.8]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   data            cut           qcut\n",
       "0     1  (-0.009, 1.8]  (-0.001, 1.8]\n",
       "1     2     (1.8, 3.6]     (1.8, 2.0]\n",
       "2     2     (1.8, 3.6]     (1.8, 2.0]\n",
       "3     2     (1.8, 3.6]     (1.8, 2.0]\n",
       "4     2     (1.8, 3.6]     (1.8, 2.0]\n",
       "5     6     (5.4, 7.2]     (3.6, 7.2]\n",
       "6     7     (5.4, 7.2]     (3.6, 7.2]\n",
       "7     8     (7.2, 9.0]     (7.2, 9.0]\n",
       "8     9     (7.2, 9.0]     (7.2, 9.0]\n",
       "9     0  (-0.009, 1.8]  (-0.001, 1.8]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame()\n",
    "df['data'] = [1,2,2,2,2,6,7,8,9,0]#这里注意箱边界值需要唯一，不然qcut时程序会报错\n",
    "df['cut']=pd.cut(df['data'],5)\n",
    "df['qcut']=pd.qcut(df['data'],5)\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.860791Z",
     "start_time": "2019-03-29T03:48:10.806791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.8, 3.6]       4\n",
       "(7.2, 9.0]       2\n",
       "(5.4, 7.2]       2\n",
       "(-0.009, 1.8]    2\n",
       "(3.6, 5.4]       0\n",
       "Name: cut, dtype: int64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.cut.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:10.969791Z",
     "start_time": "2019-03-29T03:48:10.862791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.8, 2.0]       4\n",
       "(7.2, 9.0]       2\n",
       "(3.6, 7.2]       2\n",
       "(-0.001, 1.8]    2\n",
       "(2.0, 3.6]       0\n",
       "Name: qcut, dtype: int64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.qcut.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T03:48:11.063791Z",
     "start_time": "2019-03-29T03:48:10.975791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    (-0.001, 1.8]\n",
       "1       (1.8, 2.0]\n",
       "2       (1.8, 2.0]\n",
       "3       (1.8, 2.0]\n",
       "4       (1.8, 2.0]\n",
       "5       (3.6, 7.2]\n",
       "6       (3.6, 7.2]\n",
       "7       (7.2, 9.0]\n",
       "8       (7.2, 9.0]\n",
       "9    (-0.001, 1.8]\n",
       "Name: data, dtype: category\n",
       "Categories (5, interval[float64]): [(-0.001, 1.8] < (1.8, 2.0] < (2.0, 3.6] < (3.6, 7.2] < (7.2, 9.0]]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.qcut(df['data'],5,duplicates='drop')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-03-29T04:19:27.787791Z",
     "start_time": "2019-03-29T04:19:27.766791Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.8, 2.0]       4\n",
       "(7.2, 9.0]       2\n",
       "(3.6, 7.2]       2\n",
       "(-0.001, 1.8]    2\n",
       "(2.0, 3.6]       0\n",
       "Name: data, dtype: int64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.qcut(df['data'],5,duplicates='raise').value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分箱、WOE编码、IV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:41:58.447404Z",
     "start_time": "2019-04-29T02:41:58.408852Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>score1</th>\n",
       "      <th>score2</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>261</td>\n",
       "      <td>812</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>923</td>\n",
       "      <td>1795</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>454</td>\n",
       "      <td>1862</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>951</td>\n",
       "      <td>3288</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>855</td>\n",
       "      <td>302</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>95</td>\n",
       "      <td>1293</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>994</td>\n",
       "      <td>1339</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>439</td>\n",
       "      <td>1622</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>957</td>\n",
       "      <td>1389</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>470</td>\n",
       "      <td>992</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>116</td>\n",
       "      <td>899</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>247</td>\n",
       "      <td>2482</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>588</td>\n",
       "      <td>1751</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>85</td>\n",
       "      <td>3900</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>760</td>\n",
       "      <td>1917</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>181</td>\n",
       "      <td>1106</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>807</td>\n",
       "      <td>1401</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>762</td>\n",
       "      <td>577</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>600</td>\n",
       "      <td>1531</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>425</td>\n",
       "      <td>1766</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>71</td>\n",
       "      <td>2732</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>513</td>\n",
       "      <td>1885</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>832</td>\n",
       "      <td>2512</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>94</td>\n",
       "      <td>3419</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>747</td>\n",
       "      <td>1620</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>229</td>\n",
       "      <td>133</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>166</td>\n",
       "      <td>342</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>862</td>\n",
       "      <td>3650</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>910</td>\n",
       "      <td>2381</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>301</td>\n",
       "      <td>376</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>370</th>\n",
       "      <td>764</td>\n",
       "      <td>2664</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>371</th>\n",
       "      <td>37</td>\n",
       "      <td>2845</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>372</th>\n",
       "      <td>192</td>\n",
       "      <td>3158</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>373</th>\n",
       "      <td>282</td>\n",
       "      <td>3782</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>374</th>\n",
       "      <td>347</td>\n",
       "      <td>638</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>375</th>\n",
       "      <td>390</td>\n",
       "      <td>2209</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>376</th>\n",
       "      <td>532</td>\n",
       "      <td>2686</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>377</th>\n",
       "      <td>730</td>\n",
       "      <td>3939</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>378</th>\n",
       "      <td>273</td>\n",
       "      <td>2498</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>379</th>\n",
       "      <td>534</td>\n",
       "      <td>3089</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>380</th>\n",
       "      <td>932</td>\n",
       "      <td>1307</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>381</th>\n",
       "      <td>82</td>\n",
       "      <td>1125</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>382</th>\n",
       "      <td>868</td>\n",
       "      <td>3308</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>383</th>\n",
       "      <td>823</td>\n",
       "      <td>1083</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>384</th>\n",
       "      <td>449</td>\n",
       "      <td>905</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>385</th>\n",
       "      <td>244</td>\n",
       "      <td>3069</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>386</th>\n",
       "      <td>115</td>\n",
       "      <td>3788</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>674</td>\n",
       "      <td>3706</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>388</th>\n",
       "      <td>940</td>\n",
       "      <td>166</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>389</th>\n",
       "      <td>657</td>\n",
       "      <td>1123</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>390</th>\n",
       "      <td>237</td>\n",
       "      <td>2961</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>391</th>\n",
       "      <td>443</td>\n",
       "      <td>1027</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>392</th>\n",
       "      <td>266</td>\n",
       "      <td>2755</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>393</th>\n",
       "      <td>739</td>\n",
       "      <td>805</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>394</th>\n",
       "      <td>453</td>\n",
       "      <td>1417</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395</th>\n",
       "      <td>606</td>\n",
       "      <td>344</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>396</th>\n",
       "      <td>164</td>\n",
       "      <td>1057</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>397</th>\n",
       "      <td>488</td>\n",
       "      <td>3971</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>398</th>\n",
       "      <td>996</td>\n",
       "      <td>1215</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>399</th>\n",
       "      <td>643</td>\n",
       "      <td>2158</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>400 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     score1  score2  label\n",
       "0       261     812      0\n",
       "1       923    1795      1\n",
       "2       454    1862      0\n",
       "3       951    3288      1\n",
       "4       855     302      1\n",
       "5        95    1293      0\n",
       "6       994    1339      1\n",
       "7       439    1622      1\n",
       "8       957    1389      1\n",
       "9       470     992      1\n",
       "10      116     899      0\n",
       "11      247    2482      1\n",
       "12      588    1751      1\n",
       "13       85    3900      1\n",
       "14      760    1917      1\n",
       "15      181    1106      1\n",
       "16      807    1401      0\n",
       "17      762     577      1\n",
       "18      600    1531      0\n",
       "19      425    1766      0\n",
       "20       71    2732      1\n",
       "21      513    1885      1\n",
       "22      832    2512      0\n",
       "23       94    3419      0\n",
       "24      747    1620      1\n",
       "25      229     133      1\n",
       "26      166     342      1\n",
       "27      862    3650      0\n",
       "28      910    2381      1\n",
       "29      301     376      0\n",
       "..      ...     ...    ...\n",
       "370     764    2664      1\n",
       "371      37    2845      1\n",
       "372     192    3158      1\n",
       "373     282    3782      0\n",
       "374     347     638      0\n",
       "375     390    2209      0\n",
       "376     532    2686      1\n",
       "377     730    3939      0\n",
       "378     273    2498      1\n",
       "379     534    3089      1\n",
       "380     932    1307      0\n",
       "381      82    1125      1\n",
       "382     868    3308      1\n",
       "383     823    1083      1\n",
       "384     449     905      0\n",
       "385     244    3069      0\n",
       "386     115    3788      0\n",
       "387     674    3706      0\n",
       "388     940     166      0\n",
       "389     657    1123      1\n",
       "390     237    2961      1\n",
       "391     443    1027      0\n",
       "392     266    2755      1\n",
       "393     739     805      0\n",
       "394     453    1417      1\n",
       "395     606     344      0\n",
       "396     164    1057      1\n",
       "397     488    3971      1\n",
       "398     996    1215      0\n",
       "399     643    2158      1\n",
       "\n",
       "[400 rows x 3 columns]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "np.random.seed(666)\n",
    "score_list1 = np.random.randint(25, 1000, size=400)\n",
    "score_list2=np.random.randint(101,4000,size=400)\n",
    "data=pd.DataFrame({'score1':score_list1,'score2':score_list2})\n",
    "data['label']=np.random.randint(0,2,size=400)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:50:21.051474Z",
     "start_time": "2019-04-29T02:50:21.041966Z"
    }
   },
   "outputs": [],
   "source": [
    "def data_cut(data,way,num_bin=5):\n",
    "    if way=='dengju':\n",
    "        newdata=pd.DataFrame()\n",
    "        for col in range(len(data.columns)-1):\n",
    "            newdata[data.columns[col]]=pd.cut(data.iloc[:,col],num_bin)\n",
    "        newdata['label']=data['label']\n",
    "    if way=='dengpin':\n",
    "        newdata=pd.DataFrame()\n",
    "        for col in range(len(data.columns)-1):\n",
    "            newdata[data.columns[col]]=pd.qcut(data.iloc[:,col],num_bin)\n",
    "        newdata['label']=data['label']\n",
    "    if way=='zuiyoufenxiang':\n",
    "        pass\n",
    "    return newdata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:50:21.648467Z",
     "start_time": "2019-04-29T02:50:21.637460Z"
    }
   },
   "outputs": [],
   "source": [
    "def calcWOE(dataset,col,targe):\n",
    "    subdata=pd.DataFrame(dataset.groupby(col)[col].count())\n",
    "    suby=pd.DataFrame(dataset.groupby(col)[targe].sum())\n",
    "    data=pd.DataFrame(pd.merge(subdata,suby,how=\"left\",left_index=True,right_index=True))\n",
    "    b_total=data[targe].sum()\n",
    "    total=data[col].sum()\n",
    "    g_total=total-b_total\n",
    "    data[\"bad\"]=data.apply(lambda x:round(x[targe]/b_total,3),axis=1)\n",
    "    data[\"good\"]=data.apply(lambda x:round((x[col]-x[targe])/g_total,3),axis=1)\n",
    "    data[\"WOE\"]=data.apply(lambda x:np.log(x.bad/x.good),axis=1)\n",
    "    return data.loc[:,[\"bad\",\"good\",\"WOE\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:53:05.056180Z",
     "start_time": "2019-04-29T02:53:05.034155Z"
    }
   },
   "outputs": [],
   "source": [
    "Newdata=data_cut(data,'dengju',num_bin=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:53:05.652379Z",
     "start_time": "2019-04-29T02:53:05.610350Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bad</th>\n",
       "      <th>good</th>\n",
       "      <th>WOE</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>score1</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>(26.031, 269.25]</th>\n",
       "      <td>0.294</td>\n",
       "      <td>0.243</td>\n",
       "      <td>0.190518</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(269.25, 511.5]</th>\n",
       "      <td>0.223</td>\n",
       "      <td>0.243</td>\n",
       "      <td>-0.085890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(511.5, 753.75]</th>\n",
       "      <td>0.275</td>\n",
       "      <td>0.259</td>\n",
       "      <td>0.059943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(753.75, 996.0]</th>\n",
       "      <td>0.209</td>\n",
       "      <td>0.254</td>\n",
       "      <td>-0.195000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    bad   good       WOE\n",
       "score1                                  \n",
       "(26.031, 269.25]  0.294  0.243  0.190518\n",
       "(269.25, 511.5]   0.223  0.243 -0.085890\n",
       "(511.5, 753.75]   0.275  0.259  0.059943\n",
       "(753.75, 996.0]   0.209  0.254 -0.195000"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "calcWOE(Newdata,'score1','label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:53:25.551621Z",
     "start_time": "2019-04-29T02:53:25.546619Z"
    }
   },
   "outputs": [],
   "source": [
    "def calcIV(dataset):\n",
    "    dataset[\"IV\"]=dataset.apply(lambda x:(x.bad-x.good)*x.WOE,axis=1)\n",
    "    IV=sum(dataset[\"IV\"])\n",
    "    return IV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:54:04.782157Z",
     "start_time": "2019-04-29T02:54:04.749134Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.021168317214403577"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "calcIV(calcWOE(Newdata,'score1','label'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:07:41.367784Z",
     "start_time": "2019-04-29T02:07:41.355785Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "def createDateset():\n",
    "    dataSet=[\n",
    "            [0, 1, 0],\n",
    "            [0, 0, 0],\n",
    "            [0, 1, 0],\n",
    "            [1, 0, 1],\n",
    "            [1, 0, 0],\n",
    "            [1, 1, 1],\n",
    "            [0, 1, 1],\n",
    "            [1, 1, 1],\n",
    "            [1, 0, 1],\n",
    "            [1, 0, 1]]\n",
    "    return dataSet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:07:42.213224Z",
     "start_time": "2019-04-29T02:07:42.197225Z"
    }
   },
   "outputs": [],
   "source": [
    "def calcWOE(dataset,col,targe):\n",
    "    subdata=pd.DataFrame(dataset.groupby(col)[col].count())\n",
    "    suby=pd.DataFrame(dataset.groupby(col)[targe].sum())\n",
    "    data=pd.DataFrame(pd.merge(subdata,suby,how=\"left\",left_index=True,right_index=True))\n",
    "    b_total=data[targe].sum()\n",
    "    total=data[col].sum()\n",
    "    g_total=total-b_total\n",
    "    data[\"bad\"]=data.apply(lambda x:round(x[targe]/b_total,3),axis=1)\n",
    "    data[\"good\"]=data.apply(lambda x:round((x[col]-x[targe])/g_total,3),axis=1)\n",
    "    data[\"WOE\"]=data.apply(lambda x:np.log(x.bad/x.good),axis=1)\n",
    "    return data.loc[:,[\"bad\",\"good\",\"WOE\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:07:42.954274Z",
     "start_time": "2019-04-29T02:07:42.946276Z"
    }
   },
   "outputs": [],
   "source": [
    "def calcIV(dataset):\n",
    "    dataset[\"IV\"]=dataset.apply(lambda x:(x.bad-x.good)*x.WOE,axis=1)\n",
    "    IV=sum(dataset[\"IV\"])\n",
    "    return IV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-29T02:07:43.887922Z",
     "start_time": "2019-04-29T02:07:43.686827Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      bad  good       WOE\n",
      "x1                       \n",
      "0   0.167  0.75 -1.502079\n",
      "1   0.833  0.25  1.203573\n",
      "The IV of x1 is: 1.5773951850378087\n"
     ]
    }
   ],
   "source": [
    "data=createDateset()\n",
    "data=pd.DataFrame(data,columns=[\"x1\",\"x2\",\"y\"])\n",
    "data_WOE=calcWOE(data,\"x1\",\"y\")\n",
    "print(data_WOE)\n",
    "data_IV=calcIV(data_WOE)\n",
    "print(\"The IV of %s is:\"%\"x1\",data_IV)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Best-KS分箱"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-23T08:29:26.020312Z",
     "start_time": "2019-04-23T08:29:25.418910Z"
    },
    "code_folding": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         0    1\n",
      "18-30  514  882\n",
      "31-44  612  466\n",
      "45-49  131   69\n",
      "50-55  119   41\n",
      "56-71  124   42\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "创建KS分箱实验\n",
    "\"\"\"\n",
    "import pandas as pd\n",
    "def best_ks_box(data, var_name, box_num):\n",
    "    data = data[[var_name, '是否违约']]\n",
    "    \"\"\"\n",
    "    KS值函数\n",
    "    \"\"\"\n",
    "    def ks_bin(data_, limit):\n",
    "        g = data_.iloc[:, 1].value_counts()[0]\n",
    "        b = data_.iloc[:, 1].value_counts()[1]\n",
    "        data_cro = pd.crosstab(data_.iloc[:, 0], data_.iloc[:, 1])\n",
    "        data_cro[0] = data_cro[0] / g\n",
    "        data_cro[1] = data_cro[1] / b\n",
    "        data_cro_cum = data_cro.cumsum()\n",
    "        ks_list = abs(data_cro_cum[1] - data_cro_cum[0])\n",
    "        ks_list_index = ks_list.nlargest(len(ks_list)).index.tolist()\n",
    "        for i in ks_list_index:\n",
    "            data_1 = data_[data_.iloc[:, 0] <= i]\n",
    "            data_2 = data_[data_.iloc[:, 0] > i]\n",
    "            if len(data_1) >= limit and len(data_2) >= limit:\n",
    "                break\n",
    "        return i\n",
    "    # 测试： ks_bin(data,data.shape[0]/7)\n",
    "    \"\"\"\n",
    "    区间选取函数\n",
    "    \"\"\"\n",
    "    def ks_zone(data_, list_):\n",
    "        list_zone = list()\n",
    "        list_.sort()\n",
    "        n = 0\n",
    "        for i in list_:\n",
    "            m = sum(data_.iloc[:, 0] <= i) - n\n",
    "            n = sum(data_.iloc[:, 0] <= i)\n",
    "            list_zone.append(m)\n",
    "        list_zone.append(50000 - sum(list_zone))\n",
    "        max_index = list_zone.index(max(list_zone))\n",
    "        if max_index == 0:\n",
    "            rst = [data_.iloc[:, 0].unique().min(), list_[0]]\n",
    "        elif max_index == len(list_):\n",
    "            rst = [list_[-1], data_.iloc[:, 0].unique().max()]\n",
    "        else:\n",
    "            rst = [list_[max_index - 1], list_[max_index]]\n",
    "        return rst\n",
    "    #    测试： ks_zone(data_,[23])    #左开右闭\n",
    "    data_ = data.copy()\n",
    "    limit_ = data.shape[0] / 20  # 总体的5%\n",
    "    \"\"\"\"\n",
    "    循环体\n",
    "    \"\"\"\n",
    "    zone = list()\n",
    "    for i in range(box_num - 1):\n",
    "        ks_ = ks_bin(data_, limit_)\n",
    "        zone.append(ks_)\n",
    "        new_zone = ks_zone(data, zone)\n",
    "        data_ = data[(data.iloc[:, 0] > new_zone[0]) & (data.iloc[:, 0] <= new_zone[1])]\n",
    "    \"\"\"\n",
    "    构造分箱明细表\n",
    "    \"\"\"\n",
    "    zone.append(data.iloc[:, 0].unique().max())\n",
    "    zone.append(data.iloc[:, 0].unique().min())\n",
    "    zone.sort()\n",
    "    df_ = pd.DataFrame(columns=[0, 1])\n",
    "    for i in range(len(zone) - 1):\n",
    "        if i == 0:\n",
    "            data_ = data[(data.iloc[:, 0] >= zone[i]) & (data.iloc[:, 0] <= zone[i + 1])]\n",
    "        else:\n",
    "            data_ = data[(data.iloc[:, 0] > zone[i]) & (data.iloc[:, 0] <= zone[i + 1])]\n",
    "        data_cro = pd.crosstab(data_.iloc[:, 0], data_.iloc[:, 1])\n",
    "        df_.loc['{0}-{1}'.format(data_cro.index.min(), data_cro.index.max())] = data_cro.apply(sum)\n",
    "    return df_\n",
    "data = pd.read_excel('分箱测试1.xlsx')\n",
    "var_name = '年龄'\n",
    "print(best_ks_box(data, var_name, 5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-23T08:29:58.743856Z",
     "start_time": "2019-04-23T08:29:58.738851Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "150.0"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape[0]/20"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 卡方分箱"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**KS曲线**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-19T01:49:34.061572Z",
     "start_time": "2019-04-19T01:49:25.020778Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "def ks(df, y_true, y_pre, num=10, good=0, bad=1):\n",
    "    # 1.将数据从小到大平均分成num组\n",
    "    df_ks = df.sort_values(y_pre).reset_index(drop=True)\n",
    "    df_ks['rank'] = np.floor((df_ks.index / len(df_ks) * num) + 1)\n",
    "    df_ks['set_1'] = 1\n",
    "    # 2.统计结果\n",
    "    result_ks = pd.DataFrame()\n",
    "    result_ks['group_sum'] = df_ks.groupby('rank')['set_1'].sum()\n",
    "    result_ks['group_min'] = df_ks.groupby('rank')[y_pre].min()\n",
    "    result_ks['group_max'] = df_ks.groupby('rank')[y_pre].max()\n",
    "    result_ks['group_mean'] = df_ks.groupby('rank')[y_pre].mean()\n",
    "    # 3.最后一行添加total汇总数据\n",
    "    result_ks.loc['total', 'group_sum'] = df_ks['set_1'].sum()\n",
    "    result_ks.loc['total', 'group_min'] = df_ks[y_pre].min()\n",
    "    result_ks.loc['total', 'group_max'] = df_ks[y_pre].max()\n",
    "    result_ks.loc['total', 'group_mean'] = df_ks[y_pre].mean()\n",
    "    # 4.好用户统计\n",
    "    result_ks['good_sum'] = df_ks[df_ks[y_true] == good].groupby('rank')['set_1'].sum()\n",
    "    result_ks.good_sum.replace(np.nan, 0, inplace=True)\n",
    "    result_ks.loc['total', 'good_sum'] = result_ks['good_sum'].sum()\n",
    "    result_ks['good_percent'] = result_ks['good_sum'] / result_ks.loc['total', 'good_sum']\n",
    "    result_ks['good_percent_cum'] = result_ks['good_sum'].cumsum() / result_ks.loc['total', 'good_sum']\n",
    "    # 5.坏用户统计\n",
    "    result_ks['bad_sum'] = df_ks[df_ks[y_true] == bad].groupby('rank')['set_1'].sum()\n",
    "    result_ks.bad_sum.replace(np.nan, 0, inplace=True)\n",
    "    result_ks.loc['total', 'bad_sum'] = result_ks['bad_sum'].sum()\n",
    "    result_ks['bad_percent'] = result_ks['bad_sum'] / result_ks.loc['total', 'bad_sum']\n",
    "    result_ks['bad_percent_cum'] = result_ks['bad_sum'].cumsum() / result_ks.loc['total', 'bad_sum']\n",
    "    # 6.计算ks值\n",
    "    result_ks['diff'] = result_ks['bad_percent_cum'] - result_ks['good_percent_cum']\n",
    "    # 7.更新最后一行total的数据\n",
    "    result_ks.loc['total', 'bad_percent_cum'] = np.nan\n",
    "    result_ks.loc['total', 'good_percent_cum'] = np.nan\n",
    "    result_ks.loc['total', 'diff'] = result_ks['diff'].max()\n",
    "    \n",
    "    result_ks = result_ks.reset_index()\n",
    "    \n",
    "    return result_ks"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**ks曲线绘制**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matlibplot.pyplot as plt\n",
    "import seaborn as sns\n",
    "sns.set()\n",
    "\n",
    "def ks_curve(df, num=10):\n",
    "    # 防止中文乱码\n",
    "    plt.rcParams['font.sans-serif']=['SimHei']\n",
    "    plt.rcParams['axes.unicode_minus']=False\n",
    "    ks_value = df['diff'].max()\n",
    "    # 获取绘制曲线所需要的数据\n",
    "    x_curve = range(num + 1)\n",
    "    y_curve1 = [0] + list(df['bad_percent_cum'].values[:-1])\n",
    "    y_curve2 = [0] + list(df['good_percent_cum'].values[:-1])\n",
    "    y_curve3 = [0] + list(df['diff'].values[:-1])\n",
    "    # 获取绘制ks点所需要的数据\n",
    "    df_ks_max = df[df['diff'] == ks_value]\n",
    "    x_point = [df_ks_max['rank'].values[0], df_ks_max['rank'].values[0]]\n",
    "    y_point = [df_ks_max['bad_percent_cum'].values[0], df_ks_max['good_percent_cum'].values[0]]\n",
    "    # 绘制曲线\n",
    "    plt.plot(x_curve, y_curve1, label='bad', linewidth=2)\n",
    "    plt.plot(x_curve, y_curve2, label='good', linewidth=2)\n",
    "    plt.plot(x_curve, y_curve3, label='diff', linewidth=2)\n",
    "    # 标记ks\n",
    "    plt.plot(x_point, y_point, label='ks - {:.2f}'.format(ks_value), color='r', marker='o', markerfacecolor='r', markersize=5)\n",
    "    plt.scatter(x_point, y_point, color='r')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    return ks_value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-19T01:50:48.614624Z",
     "start_time": "2019-04-19T01:50:48.222164Z"
    }
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'df' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-2-319578ccbff1>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mresult_ks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mks\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'label'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'score'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mks_curve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult_ks\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'df' is not defined"
     ]
    }
   ],
   "source": [
    "result_ks = ks(df, 'label', 'score')\n",
    "ks_curve(result_ks)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "roc_curve函数实现\n",
    "上面说了计算ks其实只用得到关键的两列，而这两列可以通过sklearn.metrics中函数roc_curve直接获取。\n",
    "下面代码中，ks_value即为ks值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "fpr, tpr, thresholds= roc_curve(df.label, df.score)\n",
    "ks_value = max(fpr-tpr)\n",
    "# 画图，画出曲线\n",
    "plt.plot(fpr, label='bad')\n",
    "plt.plot(tpr, label='good')\n",
    "plt.plot(fpr-tpr, label='diff')\n",
    "# 标记ks\n",
    "x = np.argwhere((fpr-tpr) == ks_value)[0, 0]\n",
    "plt.plot((x, x), (0, ks_value), label='ks - {:.2f}'.format(ks_value), color='r', marker='o', markerfacecolor='r', markersize=5)\n",
    "plt.scatter((x, x), (0, ks_value), color='r')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-04-21T10:15:29.260744Z",
     "start_time": "2019-04-21T10:15:29.166669Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.11681016, 0.30643873, 0.15245682, 0.1567636 , 0.32927335,\n",
       "        0.60339248, 0.52028705, 0.22547453, 0.21323053, 0.12712172,\n",
       "        0.7040367 ],\n",
       "       [0.91992805, 0.84955413, 0.39345842, 0.63123788, 0.48451138,\n",
       "        0.78784536, 0.70246768, 0.21296298, 0.72675677, 0.05906666,\n",
       "        0.90253797],\n",
       "       [0.04203757, 0.4189408 , 0.75141268, 0.84570893, 0.77677815,\n",
       "        0.22485146, 0.35234257, 0.67905009, 0.44571701, 0.03257003,\n",
       "        0.80136447]])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "np.random.rand(3,11)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "position": {
    "height": "144px",
    "left": "1360px",
    "right": "20px",
    "top": "117px",
    "width": "350px"
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
